{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "52545e6a",
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "from sklearn.preprocessing import MinMaxScaler\n",
    "import matplotlib.pyplot as plt\n",
    "from core.model import Model\n",
    "\n",
    "import json"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "2797ad65",
   "metadata": {},
   "outputs": [],
   "source": [
    "def plot_results(predicted_data, true_data):\n",
    "    fig = plt.figure(facecolor='white')\n",
    "    ax = fig.add_subplot(111)\n",
    "    ax.plot(true_data, label='True Data')\n",
    "    plt.plot(predicted_data, label='Prediction')\n",
    "    plt.legend()\n",
    "    plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "c4b0840c",
   "metadata": {},
   "outputs": [],
   "source": [
    "df = pd.read_csv('./data/sinewave.csv')  # 读取股票文件"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "588096bf",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>sinewave</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0.841471</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0.873736</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0.902554</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0.927809</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0.949402</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   sinewave\n",
       "0  0.841471\n",
       "1  0.873736\n",
       "2  0.902554\n",
       "3  0.927809\n",
       "4  0.949402"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "8e91a869",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 获取DataFrame中的数据，形式为数组array形式\n",
    "values = df.values\n",
    "# 确保所有数据为float类型\n",
    "values = values.astype('float32')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "fbdb18bb",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 定义series_to_supervised()函数\n",
    "# 将时间序列转换为监督学习问题\n",
    "def series_to_supervised(data, n_in=1, n_out=1, dropnan=True):\n",
    "    \"\"\"\n",
    "    将时间序列框定为有监督的学习数据集。\n",
    "        论据：\n",
    "        数据：作为列表或NumPy数组的观察序列。\n",
    "        n_in：作为输入的滞后观测数（X）。\n",
    "        n_out：作为输出的观察数（y）。\n",
    "        dropnan：布尔值，决定是否删除具有NaN值的行。\n",
    "    返回：\n",
    "    pd.DataFrame(用于监督学习)\n",
    "    \"\"\"\n",
    "    n_vars = 1 if type(data) is list else data.shape[1]\n",
    "    df = pd.DataFrame(data)\n",
    "    cols, names = list(), list()\n",
    "    # input sequence (t-n, ... t-1)\n",
    "    for i in range(n_in, 0, -1):\n",
    "        cols.append(df.shift(i))\n",
    "        names += [('var%d(t-%d)' % (j + 1, i)) for j in range(n_vars)]\n",
    "    # forecast sequence (t, t+1, ... t+n)\n",
    "    for i in range(0, n_out):\n",
    "        cols.append(df.shift(-i))\n",
    "        if i == 0:\n",
    "            names += [('var%d(t)' % (j + 1)) for j in range(n_vars)]\n",
    "        else:\n",
    "            names += [('var%d(t+%d)' % (j + 1, i)) for j in range(n_vars)]\n",
    "    # put it all together\n",
    "    agg = pd.concat(cols, axis=1)\n",
    "    agg.columns = names\n",
    "    # drop rows with NaN values\n",
    "    if dropnan:\n",
    "        agg.dropna(inplace=True)\n",
    "    return agg"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "b4599843",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 将时间序列转换为监督学习问题\n",
    "reframed = series_to_supervised(values, 1, 1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "885302e4",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>var1(t-1)</th>\n",
       "      <th>var1(t)</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0.841471</td>\n",
       "      <td>0.873736</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0.873736</td>\n",
       "      <td>0.902554</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0.902554</td>\n",
       "      <td>0.927809</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0.927809</td>\n",
       "      <td>0.949402</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>0.949402</td>\n",
       "      <td>0.967249</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   var1(t-1)   var1(t)\n",
       "1   0.841471  0.873736\n",
       "2   0.873736  0.902554\n",
       "3   0.902554  0.927809\n",
       "4   0.927809  0.949402\n",
       "5   0.949402  0.967249"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "reframed.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "91d4be5a",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 划分训练集和测试集\n",
    "train = reframed.iloc[:int(len(reframed) * 0.85), :].values\n",
    "test = reframed.iloc[int(len(reframed) * 0.85):, :].values\n",
    "# 划分训练集和测试集的输入和输出\n",
    "train_X, train_y = train[:, :-1], train[:, -1]\n",
    "test_X, test_y = test[:, :-1], test[:, -1]\n",
    "# 转化为三维数据\n",
    "# reshape input to be 3D [samples, timesteps, features]\n",
    "train_X = train_X.reshape((train_X.shape[0], 1, train_X.shape[1]))\n",
    "test_X = test_X.reshape((test_X.shape[0], 1, test_X.shape[1]))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "474b0179",
   "metadata": {
    "scrolled": false
   },
   "outputs": [],
   "source": [
    "configs = json.load(open('./test_2/config.json', 'r'))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "baa20f5c",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[Model] Model Compiled\n",
      "Time taken: 0:00:01.018916\n"
     ]
    }
   ],
   "source": [
    "model = Model()\n",
    "model.build_model(configs, train_X.shape[1], train_X.shape[2])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "8eaa9e30",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[Model] Training Started\n",
      "[Model] 50 epochs, 64 batch size\n",
      "Epoch 1/50\n",
      "67/67 [==============================] - 9s 37ms/step - loss: 0.2429 - val_loss: 0.0026\n",
      "Epoch 2/50\n",
      "67/67 [==============================] - 1s 14ms/step - loss: 0.0054 - val_loss: 0.0020\n",
      "Epoch 3/50\n",
      "67/67 [==============================] - 1s 14ms/step - loss: 0.0048 - val_loss: 0.0021\n",
      "Epoch 4/50\n",
      "67/67 [==============================] - 1s 14ms/step - loss: 0.0049 - val_loss: 0.0021\n",
      "Epoch 5/50\n",
      "67/67 [==============================] - 1s 14ms/step - loss: 0.0048 - val_loss: 0.0022\n",
      "Epoch 6/50\n",
      "67/67 [==============================] - 1s 13ms/step - loss: 0.0049 - val_loss: 0.0021\n",
      "Epoch 7/50\n",
      "67/67 [==============================] - 1s 14ms/step - loss: 0.0049 - val_loss: 0.0022\n",
      "Epoch 8/50\n",
      "67/67 [==============================] - 1s 14ms/step - loss: 0.0046 - val_loss: 0.0021\n",
      "Epoch 9/50\n",
      "67/67 [==============================] - 1s 14ms/step - loss: 0.0047 - val_loss: 0.0021\n",
      "Epoch 10/50\n",
      "67/67 [==============================] - 1s 14ms/step - loss: 0.0048 - val_loss: 0.0021\n",
      "Epoch 11/50\n",
      "67/67 [==============================] - 1s 14ms/step - loss: 0.0047 - val_loss: 0.0022\n",
      "Epoch 12/50\n",
      "67/67 [==============================] - 2s 36ms/step - loss: 0.0046 - val_loss: 0.0021\n",
      "Epoch 13/50\n",
      "67/67 [==============================] - 2s 28ms/step - loss: 0.0045 - val_loss: 0.0021\n",
      "Epoch 14/50\n",
      "67/67 [==============================] - 2s 25ms/step - loss: 0.0047 - val_loss: 0.0022\n",
      "Epoch 15/50\n",
      "67/67 [==============================] - 1s 19ms/step - loss: 0.0046 - val_loss: 0.0021\n",
      "Epoch 16/50\n",
      "67/67 [==============================] - 1s 17ms/step - loss: 0.0045 - val_loss: 0.0021\n",
      "Epoch 17/50\n",
      "67/67 [==============================] - 1s 17ms/step - loss: 0.0048 - val_loss: 0.0022\n",
      "Epoch 18/50\n",
      "67/67 [==============================] - 1s 21ms/step - loss: 0.0047 - val_loss: 0.0023\n",
      "Epoch 19/50\n",
      "67/67 [==============================] - 1s 20ms/step - loss: 0.0046 - val_loss: 0.0024\n",
      "Epoch 20/50\n",
      "67/67 [==============================] - 1s 21ms/step - loss: 0.0045 - val_loss: 0.0022\n",
      "Epoch 21/50\n",
      "67/67 [==============================] - 1s 17ms/step - loss: 0.0046 - val_loss: 0.0022\n",
      "Epoch 22/50\n",
      "67/67 [==============================] - 1s 15ms/step - loss: 0.0046 - val_loss: 0.0021\n",
      "Epoch 23/50\n",
      "67/67 [==============================] - 1s 17ms/step - loss: 0.0045 - val_loss: 0.0023\n",
      "Epoch 24/50\n",
      "67/67 [==============================] - 1s 18ms/step - loss: 0.0046 - val_loss: 0.0021\n",
      "Epoch 25/50\n",
      "67/67 [==============================] - 1s 16ms/step - loss: 0.0045 - val_loss: 0.0021\n",
      "Epoch 26/50\n",
      "67/67 [==============================] - 1s 15ms/step - loss: 0.0045 - val_loss: 0.0023\n",
      "Epoch 27/50\n",
      "67/67 [==============================] - 1s 17ms/step - loss: 0.0046 - val_loss: 0.0023\n",
      "Epoch 28/50\n",
      "67/67 [==============================] - 1s 19ms/step - loss: 0.0046 - val_loss: 0.0022\n",
      "Epoch 29/50\n",
      "67/67 [==============================] - 1s 19ms/step - loss: 0.0046 - val_loss: 0.0021\n",
      "Epoch 30/50\n",
      "67/67 [==============================] - 1s 15ms/step - loss: 0.0044 - val_loss: 0.0021\n",
      "Epoch 31/50\n",
      "67/67 [==============================] - 1s 13ms/step - loss: 0.0046 - val_loss: 0.0021\n",
      "Epoch 32/50\n",
      "67/67 [==============================] - 1s 13ms/step - loss: 0.0045 - val_loss: 0.0024\n",
      "Epoch 33/50\n",
      "67/67 [==============================] - 1s 13ms/step - loss: 0.0045 - val_loss: 0.0022\n",
      "Epoch 34/50\n",
      "67/67 [==============================] - 1s 13ms/step - loss: 0.0047 - val_loss: 0.0022\n",
      "Epoch 35/50\n",
      "67/67 [==============================] - 1s 13ms/step - loss: 0.0045 - val_loss: 0.0021\n",
      "Epoch 36/50\n",
      "67/67 [==============================] - 1s 13ms/step - loss: 0.0048 - val_loss: 0.0022\n",
      "Epoch 37/50\n",
      "67/67 [==============================] - 1s 13ms/step - loss: 0.0045 - val_loss: 0.0023\n",
      "Epoch 38/50\n",
      "67/67 [==============================] - 1s 13ms/step - loss: 0.0045 - val_loss: 0.0022\n",
      "Epoch 39/50\n",
      "67/67 [==============================] - 1s 13ms/step - loss: 0.0047 - val_loss: 0.0022\n",
      "Epoch 40/50\n",
      "67/67 [==============================] - 1s 17ms/step - loss: 0.0046 - val_loss: 0.0021\n",
      "Epoch 41/50\n",
      "67/67 [==============================] - 1s 17ms/step - loss: 0.0046 - val_loss: 0.0020\n",
      "Epoch 42/50\n",
      "67/67 [==============================] - 1s 18ms/step - loss: 0.0046 - val_loss: 0.0022\n",
      "Epoch 43/50\n",
      "67/67 [==============================] - 1s 15ms/step - loss: 0.0046 - val_loss: 0.0022\n",
      "Epoch 44/50\n",
      "67/67 [==============================] - 1s 17ms/step - loss: 0.0045 - val_loss: 0.0021\n",
      "Epoch 45/50\n",
      "67/67 [==============================] - 1s 19ms/step - loss: 0.0047 - val_loss: 0.0023\n",
      "Epoch 46/50\n",
      "67/67 [==============================] - 1s 17ms/step - loss: 0.0045 - val_loss: 0.0028\n",
      "Epoch 47/50\n",
      "67/67 [==============================] - 1s 14ms/step - loss: 0.0045 - val_loss: 0.0022\n",
      "Epoch 48/50\n",
      "67/67 [==============================] - 1s 14ms/step - loss: 0.0045 - val_loss: 0.0027\n",
      "Epoch 49/50\n",
      "67/67 [==============================] - 1s 17ms/step - loss: 0.0047 - val_loss: 0.0022\n",
      "Epoch 50/50\n",
      "67/67 [==============================] - 1s 16ms/step - loss: 0.0047 - val_loss: 0.0024\n",
      "[Model] Training Completed. Model saved as save_models\n",
      "Time taken: 0:01:03.841405\n"
     ]
    }
   ],
   "source": [
    "# 内存中训练\n",
    "model.train(\n",
    "    train_X,\n",
    "    train_y,\n",
    "    epochs=configs['training']['epochs'],\n",
    "    batch_size=configs['training']['batch_size'],\n",
    "    validation_data=(test_X, test_y),\n",
    "    verbose=configs['training']['verbose'],\n",
    "    shuffle=configs['training']['shuffle'],\n",
    "    validation_freq=configs['training']['validation_freq'],\n",
    "    save_dir=configs['model']['save_dir']\n",
    ")\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "cacd9cda",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[Model] Predicting Point-by-Point...\n"
     ]
    }
   ],
   "source": [
    "y_predict = model.predict_point_by_point(test_X)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "b07b62fd",
   "metadata": {},
   "outputs": [],
   "source": [
    "test_y = test_y.reshape((len(test_y), 1))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "2987243d",
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_results(y_predict, test_y)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "deep",
   "language": "python",
   "name": "deep"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
